The present invention relates to client-server architectures in distributed computer systems. More particularly, the present invention relates to a method and an apparatus that operates on a client computing system and implements what appears to be an application located on the client computing system, but which actually acts as a proxy far an application on a remote server computing system.
The recent proliferation of client-server based distributed systems has led to the development of numerous server applications, located on server computer systems, that interact with client applications, located on client computer systems. For example, one recently developed client application is an "electronic wallet," which contains financial instruments in electronic form, such as electronic cash, electronic debit cards or electronic credit cards. An electronic wallet typically resides on a client computer system, and performs financial transactions, such as purchases, by communicating with a server application on a server computer system. For example, a user on a client computer system might decide to purchase software from a server computer system that belongs to a software vendor. Protocols such as the Secure Electronic Transactions (SET) protocol and the Open Trading Protocol (OTP) enable the server computer system to receive a payment for the software from an electronic wallet on the client computer system. Using these protocols, this payment is automatically deducted from an account linked to the electronic wallet on the client computer system, and is automatically credited to an account linked to an application on the server computer system.
One problem with many existing server-based applications, as well as with protocols such as SET and OTP, is that they are designed to interact with a client application that resides on a client computer system. Locating an application, such as an electronic wallet, on a client computer system has certain disadvantages. First, an owner of the client application may want to use the client application from a number of different client computer systems. In this case, if the client application is tied to a particular client computer system, the owner of the client application cannot access the client application from another client computer system. Second, installing a client application, such as a wallet, on a client computer system can take up storage space on the client computer system and may require additional maintenance on the client computer system--to update the client application, for example. Additionally, retrieving code from a server computer system can incur a long delay in downloading the code from the server computer system.